Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system. It is written primarily in Java and free software.
An EMF is a modeling framework and code generation facility for building tools and other applications based on a structured data model. The EMP provides tools and runtime support to produce a set of Java classes for the model, along with a set of adapter classes that enable viewing and command-based editing of the model, and a basic editor.
EMF consists of three fundamental pieces. FIG. 1 is a diagram illustrating three fundamental frameworks of EMF.
Referring to FIG. 1, three frameworks configuring an EMF 100 are an EMF (Core) 110, an EMF.Edit 120, and an EMF.Codegen 130.
The EMF (Core) 110 includes a meta model for describing models and runtime support for the models including change notification, persistence support with default XMI serialization, and a very efficient reflective API for manipulating EMF objects generically.
The EMF.Edit 120 includes generic reusable classes for building editor 12 for EMF models.
The EMF.Codegen 130 is capable of generating everything needed to build a complete editor for an EMF model.
The EMF (core) 110 and the EMF.Edit 120 are operated by an eclipse platform 10, and respectively have functions of supporting the model 11 and the EMF editor 12. Such EMF runtimes again generate the model 11 and the EMF editor 12, which are user application sources, through the EMF code generator 130.
EMF is itself based on a model called Ecore. The Ecore model is the meta-model for all application models that are handled by EMF. An Ecore model has a class hierarchy structure. Classes consisting of an EMF model basically inherit any one of the classes of the class hierarchy structure and are thereby created.
When change occurs in a model, the EMF provides a method that may receive the notification of the change. That is, an Eobject class in an Ecore model may basically serve as a notifier. In this case, when the EMF is a model that refers to the instance of the original class, it may receive a notification on the content of change and use the received content of change in synchronizing each model.
An Automotive Open System Architecture (AUTOSAR) provides a software architecture, an application interface and a development method for the purpose of creating a common development platform for an Electric/Electronic Control Unit (ECU) that is applied to vehicles.
According to a method proposed by the AUTOSAR, four operations that include (1) inputting description, (2) setting system, (3) setting an ECU and (4) generating a source code are performed for configuring a specific ECU system architecture from a design model. Among the four operations, the operation of generating a source code that corresponds to the final stage uses an XML schema proposed by the AUTOSAR. As a method of modeling the XML schema, the EMF is mainly used. This is because the EMF autonomously generates a model, and moreover, provides a function that changes the existing Unified Modeling Language (UML) or XML into Ecore model.
An Ecore model that is built in this way is configured by having various relationships between class instances which configure a model. Accordingly, when the class instance configuring the model is changed, the Ecore model should inform all models of its own changing status. This, as described above, may be implemented through a notification method that is provided in an EMF itself.
However, in the case of a model that is configured in an EMF by using an AUTOSAR schema, the model does not refer to the instance of the original class but it has many attributes to which are referred by using a path that is configured with a short name as a value, in structure. In this case, therefore, when change occurs in a main model, the reference paths of objects that refer to the model should be changed. Consequently, as an entire model has a large size and becomes complicated, changing the reference path of the object whenever change occurs may become very inefficient.